package cn.da.shuai.cool.system.service.service.impl;

import cn.da.shuai.cool.mybatis.service.impl.CoolServiceImpl;
import cn.da.shuai.cool.system.service.mapper.CoolGenTableColumnMapper;
import cn.da.shuai.cool.system.model.entity.gen.CoolGenTableColumn;
import cn.da.shuai.cool.system.service.service.ICoolGenTableColumnService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.springframework.stereotype.Service;

import java.util.Arrays;
import java.util.List;

/**
 * 业务字段 服务层实现
 */
@Service
public class CoolGenTableColumnServiceImpl extends CoolServiceImpl<CoolGenTableColumnMapper, CoolGenTableColumn> implements ICoolGenTableColumnService {

    @Override
    public List<CoolGenTableColumn> selectGenTableColumnListByTableId(Long tableId) {
        LambdaQueryWrapper<CoolGenTableColumn> lqw = new LambdaQueryWrapper<>();
        lqw.eq(CoolGenTableColumn::getTableId, tableId)
           .orderByAsc(CoolGenTableColumn::getSort);
        return this.list(lqw);
    }

    @Override
    public int insertGenTableColumn(CoolGenTableColumn genTableColumn) {
        return this.save(genTableColumn) ? 1 : 0;
    }

    @Override
    public int updateGenTableColumn(CoolGenTableColumn genTableColumn) {
        return this.updateById(genTableColumn) ? 1 : 0;
    }

    @Override
    public int deleteGenTableColumnByIds(Long[] ids) {
        return this.removeByIds(Arrays.asList(ids)) ? ids.length : 0;
    }

    @Override
    public void deleteGenTableColumnByTableIds(Long[] tableIds) {
        for (Long tableId : tableIds) {
            LambdaQueryWrapper<CoolGenTableColumn> lqw = new LambdaQueryWrapper<>();
            lqw.eq(CoolGenTableColumn::getTableId, tableId);
            this.remove(lqw);
        }
    }
}